Qt Installer Framework 手册
概述
Qt Installer Framework提供了一组工具和实用程序,用于一次性创建安装程序,并在所有支持的桌面 Qt 平台上部署它们,而无需重写源代码。 安装程序将在运行它们的平台上具有原生外观,比如在Linux、Microsoft Windows 和 macOS上。
Qt Installer Framework工具生成带有一组页面的安装程序,这些页面在安装、更新或卸载过程中指导用户。 您提供可安装的内容并指定有关它的信息,例如产品和安装程序的名称以及许可协议的文本。
您可以通过向预定义页面添加widgets或通过添加整个页面为用户提供其他选项来自定义安装程序。 您可以创建脚本以向安装程序添加操作。
选择安装程序类型
您可以根据您的用例为最终用户提供离线或在线安装程序,或两者兼而有之。
两种安装程序都安装了一个维护工具,以后可用于添加、更新和删除组件。 脱机安装程序包含所有可安装组件,并且在安装过程中不需要网络连接。 在线安装程序只安装维护工具,然后从 Web 服务器上的在线存储库下载和安装组件。 因此,与离线安装程序二进制文件相比,在线安装程序二进制文件的大小更小,下载时间也更短。 如果最终用户没有安装所有可用的组件,下载和运行在线安装程序的总时间也可能比下载和运行离线安装程序的时间短。
最终用户可以使用维护工具在初始安装后从服务器安装其他组件,以及在服务器上发布更新后立即接收内容的自动更新。 但是如果想在离线安装的情况下使用,则需要在离线安装程序配置中指定存储库地址或最终用户在维护工具设置中自己指定存储库地址。
创建离线安装程序,使用户可以直接将安装包下载到介质上,以便稍后安装到计算机上。 例如,您还可以在 CD-ROM 或 U 盘上分发安装包。
创建在线安装程序,使用户能够始终安装最新版本的内容二进制文件。
推送更新
提供在线存储库以向安装您的产品的最终用户推送更新。 提供更新的最简单方法是重新创建存储库并将其上传到 Web 服务器。 对于大型存储库,您仅需要更新更改的组件。
为安装程序者提供内容
您可以让其他内容提供商将组件作为附加组件添加到安装程序。 组件提供者必须设置包含可安装组件的存储库,并将指向存储库的 URL 传递给最终用户。 然后,最终用户必须在安装程序中配置 URL。 附加组件在包管理器中可见。
教程:创建一个安装程序
本教程描述如何为一个小项目创建一个简单的安装程序:
该章节描述了您创建安装程序所必须完成的任务:
- 创建一个安装包目录,其包含所有配置文件和可供安装的程序包。
- 创建一个配置文件,其中包含关于如何构建安装程序二进制文件和在线存储库的信息。
- 创建一个
package information
文件,其包含关于可安装组件的信息。 - 创建安装程序内容并将其复制到
package
目录。 - 使用
binarycreator
工具创建安装程序。
安装程序的页面是使用您在configuration
和package information
文件中所提供的信息创建的。 示例文件位于Qt Installer Framework安装目录下的example/tutorial
目录中。
创建一个Package目录
创建一个能体现安装程序设计的目录结构,并允许在将来扩展安装程序。 该目录必须包含名为config
和packages
的子目录。
有关Package目录的更多信息,请参见Package目录一节。
创建一个配置文件
在config
目录中,创建一个名为config.xml
的文件,包含以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<Installer>
<Name>Your application</Name>
<Version>1.0.0</Version>
<Title>Your application Installer</Title>
<Publisher>Your vendor</Publisher>
<StartMenuDir>Super App</StartMenuDir>
<TargetDir>@HomeDir@/InstallationDirectory</TargetDir>
</Installer>
该配置文件指定了在简介页面上显示的以下信息:
-
<Title>
指定了在标题栏上显示的安装程序名称(1)。 -
<Name>
指定添加到页面名称和介绍文本(2)中的应用程序名称。
其他元素用于自定义安装程序的行为:
<Version>
指定应用程序的版本号。<Publisher>
指定软件的发布者(如在Windows控制面板中所展示的发布者)。<StartMenuDir>
在Windows开始菜单中指定产品的默认程序组的名称。<TargetDir>
为用户显示的默认目标目录是当前用户主目录中的 InstallationDirectory(因为预定义的变量@homedir@被用作值的一部分)。 要了解更多信息,请参阅 预定义变量一节。
有关配置文件格式和可用元素的更多信息,请参阅配置文件一节。
创建一个Package Information文件
在这个简单的场景中,安装程序只处理一个名为com.vendor.product
的组件。为了向安装程序提供有关组件的信息,创建一个包含如下内容且名为package.xml
的文件,并将其放入meta
目录:
<?xml version="1.0" encoding="UTF-8"?>
<Package>
<DisplayName>The root component</DisplayName>
<Description>Install this example.</Description>
<Version>0.1.0-1</Version>
<ReleaseDate>2010-09-21</ReleaseDate>
<Licenses>
<License name="Beer Public License Agreement" file="license.txt" />
</Licenses>
<Default>script</Default>
<Script>installscript.qs</Script>
<UserInterfaces>
<UserInterface>page.ui</UserInterface>
</UserInterfaces>
</Package>
下面将对示例文件中的元素进行更详细的描述。 有关包信息文件的更多信息,请参见Package Information File Syntax。
指定组件的信息
以下元素的信息显示在组件选择页面上:
-
<DisplayName>
在组件列表中指定组件的名称(1)。 -
<Description>
指定当组件被选中时显示的文本(2)。
指定安装版本
<Version>
当更新包可用时,可以向用户提供更新。
添加许可证
<License>
指定包含许可协议 (1) 文本的文件名称,该文本显示在许可检查页面上:
选择默认内容
<Default>
指定默认的组件是否被选中。 true
将组件设置为选中的组件。 在本例中,我们使用script
值表示在运行时解析值。 JavaScript脚本文件的名称,installscript.qs
,是在<Script>
中指定的。
创建安装程序内容
要安装的内容存储在组件的data
目录中。 由于只有一个组件,因此将数据放在packages/com.vendor.product/data
目录中。 该示例已经包含一个用于测试目的的文件,但您基本上可以在该目录中放置任何文件。
有关打包规则和选项的更多信息,请参见Data Directory一节。
创建二进制安装程序
现在,您可以创建第一个安装程序了。 在命令行中切换到examples\tutorial
。 要创建一个名为yourInstaller
的安装程序。包含由com.vendor.product
标识的包。 输入以下命令:
在Windows下:
..\..\bin\binarycreator.exe -c config\config.xml -p packages YourInstaller.exe
在Linux或OS X下:
../../bin/binarycreator -c config/config.xml -p packages YourInstaller
安装程序是在当前目录中创建的,您可以将它交付给最终用户。
有关使用binarycreator工具的更多信息,请参见binarycreator。
注意:如果在运行教程安装程序时显示错误消息,请检查您使用的是静态构建的Qt来创建安装程序。要了解更多信息请参见 Configuring Qt一节。